Status texts, params, and tooltips#18
Conversation
…ease - required disabling the progress bar when loading a file, couldn't get the official build to allow external plugins to open new dialogs. - initial work on status_text and parameter series
- add labels for configured RCOU functions
|
Hello! Thanks a lot for your effort! I'll definitely give it a go, but just in case I hit problems, could you also post some pictures to peak our interest? It's a bit unfortunate that we're losing the progress bar of the loader. In the bigger files, this will look as if the program is stuck. |
|
These are very cool! You should now be able to search for a parameter value right on the messages list! The one thing that definitely needs addressing is appending the servo function on the RCO channels. This will always be breaking saved layouts, so it has to be placed behind a compiler |
|
Ah that's a really good point. I didn't think of saved layouts. I initially added them as tooltips (which would make it work), but I found it really nice to have the function name included on the plot in the legend. In fact we could potentially put the units in the tooltip as well so we don't have to worry about the units vs non-units stuff. I wonder if that is a way to just make the layouts a little less strict somehow for both of these cases. |
|
I kind of like how the units print on the legend. It makes any screencaptured diagrams clearer to read. But I don't see why we wouldn't want the units on the tooltips in either case! |
|
Hi @trexgerratt , I'm having serious difficulties compiling the plugin. Neither Github CI nor Docker manage to do it, and I can't seem to navigate cmake in my bare machine. How did you compile it? |
|
Give me a little bit to get my machine out and going. What errors are you seeing? |
|
I have to hit the bed now, so we'll continue as time allows. For the CI job, you can take a look in this PR. Open the build step and read through the logs. I'm not 100% certain it would finish in this case, so I won't sweat too much about it. But the Docker method also fails with My local build is probably failing because of linking problems and finding the libraries of PlotJuggler at link time. I don't have a concise piece of evidence to show. |
|
yeah that CI job has errors I haven't run into. I did run into all sorts of Plotjuggler dependency/linking issues. I think the main one is needing to add plotjuggler's install/lib directory to LIBRARY_PATH to get For my own sanity, I started from scratch and ran the following: clone and build plotjuggler clone and build plugin branch The weird thing in this run through is I had to export LIBRARY_PATH with an absolute path ("~" didn't work) for some reason. I made a test directory for this run but I've still never had trouble using a ~ in an environment variable before. Weird. I'm building natively on Mac M3. |
|
We should also add:
As I mentioned, I'm using the pre built PlotJuggler .dmg, I haven't tried running the plug-in with the locally built version. I'm curious if there's any difference there. At the very least, I want to clean up that commit and separate out the progress bar so it doesn't get lost in the midst of the other changes. I've got a lot going on right now, so I'll be slow on any of these points as well. No worries and no rush on the PR from my side either. |
|
I wouldn't want to have to provide a custom PlotJuggler build along with the plugin. It doesn't sound like a good idea for some reason. So getting the most out of the prebuilt PJ is good enough for me. |
|
Sorry, that's not what I mean. I agree, having a custom build of PlotJuggler is not acceptable to me either. I just did a quick test and brought back all the progress dialog stuff. The interesting thing is the dialog works as expected* if you put the the .dylib in your local PlotJuggler build directory (i.e. ~/plotjuggler_ws/build/PlotJuggler/bin) and run your locally built plotjuggler. However, if you download and install the .dmg version of PlotJuggler (https://github.com/facontidavide/PlotJuggler/releases/download/3.15.0/PlotJuggler-3.15.0-macOS-arm64.dmg) instead of building it on your machine and then copy that same .dylib to /Applications/PlotJuggler.app/Contents/MacOS/, the progressbar dialog window will crash plotjuggler with the following error: I don't know enough about debugging QT apps, but the fact that it works fine on a local build tells me the way its packaged into a .dmg might be the issue. I know Davide is a busy guy, but I wonder if he would have any insights as it seems it might not be a bug with the ardupilot plugin code. *well, almost. the only minor thing I'm seeing the actual blue part of the progressbar itself isn't updating, but you still get a dialog that pops up and shows the loading percentage. This is sufficient to show that PlotJuggler is loading and hasn't unexpectedly hung. This is a pass in my eyes. |
I think we'll have to "bribe" him with a prize money to get him to work on that. In the recent years I think he only responds to payed requests. Which is understandable, he has a few very popular pieces of software that he maintains alone. Oh well... we'll do our best. |
|
@trexgerratt did you actually run |
e7030e1 to
faa966a
Compare







The main goal here is to get this plugin on par with the .ulog plugin. I set out to create a window to display status_text messages and autopilot parameters. While building on a Mac M2, I ran into a number of issues that I think are caused by trying to run this against the newly available .dmg release from https://github.com/facontidavide/PlotJuggler/releases/tag/3.15.0. The main issue is it seems we're no longer able to create external dialogs unless the plugin was compiled with PlotJuggler? (like the .ulog plugin). That's my best guess anyways.
Because of these issues, I had to make changes to CMakeLists and I found some other creative ways to display the information I wanted without creating a new dialog like is done with the .ulog plugin. The biggest regression I'm aware of is when loading large log files, we no longer get a little loading bar dialog. That was causing segfaults for me.
Feature List:
LogMessageDescriptionsdirectory. I included the most recent Copter.xml and Plane.xml, but they can be updated anytime with the latest versions from https://autotest.ardupilot.org/LogMessages/. After updating those files, clean and rebuild to pull in the newest descriptions.Full disclosure, a lot of the changes were done with the help of AI. It could definitely use a once-over (Especially the CMakeLists... I'm sure AI went a bit overboard on the number of changes to that file).
I put in some effort to clean it up, but I got it working good enough for my use case, and then decided to be done. After an embarrassing number of hours on these features, I don't care to put more time into it right now, but figured I should at least make these changes public in case someone else wants to push it further.